package com.example.candiates.service;

import com.example.candiates.domain.InterviewCandidates;
import com.example.candiates.domain.InterviewQuestion;
import com.example.candiates.domain.DigitalInterviewer;
import com.example.candiates.dto.InterviewScheduleDTO;
import java.util.List;
import java.util.Map;

public interface CandidateService {
    /**
     * 根据手机号查询候选人
     * @param phone 手机号
     * @return 候选人信息列表
     */
    List<InterviewCandidates> getByPhone(String phone);
    
    /**
     * 获取面试安排
     * @param candidateId 候选人ID
     * @return 面试安排
     */
    InterviewCandidates getInterviewSchedule(Integer candidateId);
    
    /**
     * 获取面试题目和面试官信息
     * @param candidateId 候选人ID
     * @return 包含面试题目和面试官信息的Map
     */
    Map<String, Object> getInterviewDetails(Integer candidateId);
    
    /**
     * 开始面试
     * @param candidateId 候选人ID
     * @return 是否成功开始面试
     */
    boolean startInterview(Integer candidateId);

    /**
     * 提交面试答案
     * @param candidateId 候选人ID
     * @param questionId 题目ID
     * @param answer 答案内容
     * @return 是否提交成功
     */
    boolean submitAnswer(Integer candidateId, Integer questionId, String answer);

    /**
     * 完成面试
     * @param candidateId 候选人ID
     * @return 是否完成成功
     */
    boolean completeInterview(Integer candidateId);

    InterviewScheduleDTO getFullInterviewDetailByPhone(String phone);
} 